package com.xmy.cultivate.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.xmy.cultivate.entity.PracticePlan;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xmy.cultivate.entity.response.PracticeCheckRade;
import com.xmy.cultivate.util.Result;

import java.util.List;

/**
 * <p>
 * 练课进度 服务类
 * </p>
 *
 * @author hpiggy
 * @since 2024-10-09
 */
public interface IPracticePlanService extends IService<PracticePlan> {


    IPage<PracticePlan> getEnterList(IPage<?> page, Integer yearPart,
                                     Integer quarterNum,
                                     String schoolId,
                                     Integer lessonType,
                                     String yearClassId,
                                     String classTypeId,
                                     String subjectsId,
                                     Integer lessonNumStart,
                                     Integer lessonNumEnd,
                                     Long practiceTypeId,
                                     String teacherName,
                                     Long inTeacherId
    );

    IPage<PracticePlan> getEnterDetail(IPage<?> page,
                                       Integer yearPart,
                                       Integer quarterNum,
                                       String schoolId,
                                       Integer lessonType,
                                       String yearClassId,
                                       String classTypeId,
                                       String subjectsId,
                                       Integer lessonNumStart,
                                       Integer lessonNumEnd,
                                       Long practiceTypeId,
                                       Long teacherId,
                                       String isFinish
    );

    Result enterSave(PracticePlan practicePlan);

    IPage<PracticePlan> getCheckList(IPage<?> iPage,
                                     Integer yearPart,
                                     Integer quarterNum,
                                     String yearClassId,
                                     String classTypeId,
                                     String subjectsId,
                                     Integer lessonNumStart,
                                     Integer lessonNumEnd,
                                     Long practiceTypeId,
                                     Long checkTeacherId,
                                     String isCheck,
                                     String starDate,
                                     String endDate
    );

    Result batchCheck(PracticePlan practicePlan, Long checkTeacherId);

    List<PracticeCheckRade> checkRadeList(
                                          String yearPart,
                                          String quarterNum,
                                          String lessonNumStart,
                                          String lessonNumEnd,
                                          String startDate,
                                          String endDate,
                                          String type,
                                          String yearClassId,
                                          String classTypeId,
                                          String subjectsId,
                                          String practiceTypeId,
                                          String teacherName,
                                          String lessonType,
                                          String schoolId);

    IPage<PracticeCheckRade> checkRadeDetail(IPage<?> page,
                                             String yearPart,
                                             String quarterNum,
                                             String lessonNumStart,
                                             String lessonNumEnd,
                                             String startDate,
                                             String endDate,
                                             String type,
                                             String yearClassId,
                                             String classTypeId,
                                             String subjectsId,
                                             String practiceTypeId,
                                             String teacherId,
                                             String lessonType,
                                             String schoolId,
                                             String isCheck);
}
